Лабораторная работа №1-С «ЗАЩИТА НАУЧНО-ТЕХНИЧЕСКОЙ ИНФОРМАЦИИ ПРЕДПРИЯТИЯ»

Кибербезопасность предприятия

Александрова У.В.,
Волгин И.А,
Голощапов Я.В.,
Дворкина Е.В.,
Серегина И.А.

2025-10-02

Cостав команды

Александрова Ульяна Вадимовна

Волгин Иван Алексеевич

Голощапов Ярослав Вячеславович

Дворкина Ева Владимировна

Серёгина Ирина Андреевна

Чемоданова Ангелина Александровна

Цели и задачи

Освоить практических навыков выявления, анализа и устранения уязвимостей информационных систем в рамках сценария «Защита научно-технической информации предприятия».

Обнаружить, проанализировать и закрыть уязвимости:

Слабый пароль пользователя;

  • XSS (CVE-2019-17427);

  • Blind SQL (CVE-2019-18890).

Определить и устранить последствия эксплуатации уязвимостей:

  • Developer backdoor (последствие уязвимости 1);

  • Redmine User (последствие уязвимости 2).

Разработать и применить меры по устранению выявленных уязвимостей.

Выполнение лабораторной работы

Обнаружение уязвимостей

Уязвимости и последствия будут детектироваться с помощью ViPNet IDS NS.

Рисунок 1: Установка фильтров

Обнаружение уязвимости “Слабый пароль пользователя”

Сканирование системы и множество одинаковых событий со стороны 10.10.4.11 на 10.10.2.12.

Событие класса “successful-admin”: пользователь успешно вошел в систему, подобрав пароль.

Действия между узлами 10.10.4.11, 10.10.2.12, 10.10.4.13: был скомпрометирован пароль от компьютера Developer Workstation.

Рисунок 2: Обнаружение входа в систему

Карточка инцидента

Уязвимость - слабый пароль пользователя. Рекомендации по устранению - изменить пароль на более сложный

Рисунок 3: Карточка инцидента

Обнаружение последствия “Developer backdoor”

Создание исполняемого файла на файловом сервере 10.10.2.12 и обращения к нему

Рисунок 4: Детектирование создания неизвестного файла

Обнаружение последствия “Developer backdoor”

Событие класса trojan-activity (LaZagne), указывающее на часть атаки, запускающую программу для извлечения информации из браузера.

Рисунок 5: Обнаружение файла с backdoor

Карточка инцидента

Первичные рекомендации по устранению последствия - удаление исполняемого файла с backdoor и остановка его работы.

Рисунок 6: Карточка инцидента

Обнаружение уязвимости “XSS (CVE-2019-17427)”

Cобытия с источником - 10.10.4.11, получателем - 10.10.2.15 (сервер Redmine). События AM EXPLOIN Possible Redmine XSS и событие AM EXPLOIT Generic Possible XSS in HTTP Body: они говорят о том, что эксплуатируется уязвимость Redmine, существующая в версиях до 4.0.4, позволяющая внедрять вредоносный JavaScript-код в веб-страницы, просматриваемые другими пользователями .

Рисунок 7: Обнаружение эксплуатации уязвимости

Обнаружение уязвимости “XSS (CVE-2019-17427)”

На сервере Redmine в файле production.log увидим сильно отличающиеся от остальных этапы, говорящие о внедрении JS кода.

Рисунок 8: Обнаружение эксплуатации уязвимости через логи

Карточка инцидента

Составляем карточку уязвимости, общее описание и рекомендации можно найти на сайте AMTIP.

Рисунок 9: Карточка уязвимости

Обнаружение последствия “Redmine User”

В проекте DEV1 во вкладке wiki включен REST API

Рисунок 10: Обнаружение REST API

Обнаружение последствия “Redmine User”

В коде упоминается пользователь с именем hacker, его мы обнаружим и в списках пользователей.

Код мы видели в пакете события.

Рисунок 11: Упоминание пользователя в коде

Обнаружение последствия “Redmine User”

Рисунок 12: Подозрительный пользователь с правами администратора

Карточка инцидента

Заполняем карточку инцидента, в рекомендациях удаление нового пользователя.

Рисунок 13: Карточка инцидента

Обнаружение уязвимости “Blind SQL (CVE-2019-18890)”

Большое количество SQL запросов SELECT SLEEP и SELECT FROM от сервера 10.10.4.11 на сервер 10.10.2.15

Рисунок 14: SQL-запросы

Карточка инцидента

При заполнении карточки уязвимости ссылаемся на гитхаб.

Рисунок 15: Карточка инцидента

Устранение уязвимостей и их последствий: Уязвимость Слабый пароль пользователя DEV-1

Для закрытия уязвимости меняем пароль на более сложный, не содержащийся в словаре. На сервер MS Active Directory подключаемся через удаленный рабочий стол. Открываем «Active Directory Users and Computers», переходим в users, находим dev1.

Рисунок 16: Пользователь dev1

Устранение уязвимостей и их последствий: Уязвимость Слабый пароль пользователя DEV-1

Меняем пароль пользователя

Рисунок 17: Смена пароля

Последствие “Developer backdoor”

Через удаленный рабочий стол переходим на сервер Developer (10.10.4.13). Новая задача, записанная нарушителем, находится на узле Developer 1 в планировщике задач.

Рисунок 18: Запуск исполняемого файла в планировщике

Последствие “Developer backdoor”

Рисунок 19: Запуск исполняемого файла в планировщике

Последствие “Developer backdoor”

Удаляем задачу в планировщике, и теперь надо удалить файл. Во вкладке action мы обнаружили путь к файлу C:\Users\dev1\Downloads\svchosting.exe, благодаря этому нашли его и удалили.

Рисунок 20: Путь к исполняемому файлу

Уязвимость атака XSS

В Redmine до версии 4.0.4 постоянный XSS существует из-за ошибок форматирования при работе с textile текстом. В данном сценарии используется для включения REST API для эксплуатации следующей уязвимости.

Рисунок 21: Пример добавления кода, выводящего на экран надпись XSS в wiki-страницу

Уязвимость атака XSS

Из описания уязвимости понятно, что необходимо найти библиотеку для преобразования textile разметки в html. В Redmine за данное преобразование отвечает файл redcloth3.rb. Для устранения изменим в нем следующие строки

Рисунок 22: Содержимое файла redcloth3.rb

Уязвимость атака XSS

Строки после изменения:

Рисунок 23: Исправления в файле redcloth3.rb

Уязвимость атака XSS

Перезапускаем службу веб-сервера sudo systemctl restart nginx.service. Уязвимость успешно устранена, так как изменилось отображение страницы на Redmine Wiki.

Рисунок 24: Успешное устранение уязвимости

Последствие “Redmine User”

Нарушитель создал пользователя на портале Redmine. Для обнаружения добавления нового привилегированного пользователя заходим в консоль администратора Redmine, переходим в раздел «Administration» – «Users» и смотрим список существующих пользователей. Удаляем его.

Рисунок 25: Список пользователей Redmine

Уязвимость Blind SQL-инъекция

Эксплуатируемая уязвимость – CVE-2019-18890.

В Redmine до версии 3.2.9 и 3.3.x до версии 3.3.10 уязвимость позволяет пользователям Redmine получать доступ к защищенной информации с помощью сгенерированного объектного запроса. Уязвимость реализуется посимвольным перебором с замером времени ответа. Время прихода пакета является индикатором: при запоздании пакета – символ подобран верно, иначе – перебор продолжается

Рисунок 26: SQL-запрос

Уязвимость Blind SQL-инъекция

Вносим изменения в код, добавляя фильтрацию значений, и после перезапуска веб-сервера через команду sudo systemctl restart nginx.service уязвимость устраняется.

Рисунок 27: Содержимое файла query.rb до исправления уязвимости

Уязвимость Blind SQL-инъекция

Исправленный файл:

Рисунок 28: Содержимое файла query.rb с исправлением уязвимости

Результат

Закрыли все обнаруженные инциденты,

Устранили уязвимости и последствия

Рисунок 29: Устраненные уязвимости и последствия

Выводы

В ходе выполнения лабораторной работы были успешно достигнуты поставленные цели: освоены практические навыки выявления, анализа и устранения типовых уязвимостей информационной системы. В рамках сценария «Защита научно-технической информации предприятия» были обнаружены и закрыты критические уязвимости и их последствия эксплуатации.